브루트 포스 [SWExpertAcademy] 1767. 프로세서 연결하기(자바) 가장자리에 있는 코어는 방문처리를 하고 시작한다. 가장자리가 아닌 코어들을 방문하며 4방향으로 전선을 설치해가며 모든 경우를 다 체크한다. 2의 과정 중 만약 현재 선택한 코어와 앞으로 방문할 코어의 수의 합보다 현재 정답 후보의 코어수가 더 크면 더 볼 필요가 없으므로 이 경우는 더 이상 체크하지 않는다.... 1767브루트 포스프로세서 연결하기자바SWEAJava알고리즘DFS1767 [백준] 1062번 가르침 문자열 리스트가 주어짐 antatica를 무조건 포함 소문자 알파벳 중에서 k개를 선택해서 가르침 단어를 온전히 읽을 수 있는 개수의 최대값 출력 antic를 미리 선택 나머지 중에서 k-5개 선택 선택한 알파벳으로 읽을 수 있는 단어 카운트 최댓값 출력 처음에 복잡도 계산을 잘못해서 시간초과가 날 줄 알았다 문제 유형에 비트마스킹이 있어서 그쪽으로 생각해봤다 근데 antatica를 빼고 다... 브루트 포스브루트 포스 백준 4920 테트리스 게임 문제 출처 : 테트리스는 아래와 같은 5가지 조각으로 이루어져 있다. N*N 정수 표가 주어졌을때 해당 조각을 이용해 얻을 수 있는 정수 합중 가장 큰 것을 출력하는 문제이다. 첫번째 조각은 90도로 회전했을때 나올 수 있는 가지수가 2개이고, 두번째 조각도 2개, 세번째 네번째는 4개 다섯번째는 1개로 총 13개이다. 해당조각이 N*N 정수표에 들어 갈 수 있는지 완전탐색으로 확인하는 방법... 구현브루트 포스구현 백준 15649 / N과 M(1) 설명 코드 코드설명 참고 : 출처 :... 백준브루트 포스백준 [백준] 14500번 - 테트로미노 Python 문제 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변끼리 연결되어 있어야 한다. 즉, 꼭짓점과 꼭짓점만 맞닿아 있으면 안 된다. 정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다. 아름이는 크기가 N×M인 종이 위... 알고리즘백준브루트 포스백준 백준 1233 주사위 총 3개의 주사위가 있다. 그리고 이 주사위는 각각 S1(2 ≤ S1 ≤ 20), S2(2 ≤ S2 ≤ 20), S3(2 ≤ S3 ≤ 40)개의 면이 있다. (실제로는 주사위가 6개의 면이 있는 것이 정상이지만 특별한 주사위라 생각하자.) 문제는 세 개의 주사위를 동시에 던졌을 때 가장 높은 빈도로 나오는 세 주사위의 합을 구하는 것이다. 예를 들어, S1 = 3, S2 = 2, S3 = 3... 알고리즘백준구현브루트 포스pythonpython 백준 2961, 도영이가 만든 맛있는 음식 - Brute Force, Backtracking 백트래킹 구현에 약간의 차이 브루트 포스 + 백트래킹: 백트래킹으로 조합(부분 집합)을 구성하고, 구성한 모든 경우를 확인 n 개의 재료들 중에서 1 ~ n 개 조합 (중복 X, 순서 X) 선택 1개 조합 선택 후, 차이 계산 2개 조합 선택 후, 차이 계산 n 개 조합 선택 후, 차이 계산 각 조합들에 대해 맛 최소 차이 갱신해나감 조합(Combination): C(n, k) = n! x ... 알고리즘코딩 테스트백준 2961 도영이가 만든 맛있는 음식백트래킹brute forceBacktracking브루트 포스Backtracking [백준] 14391번 - 종이 조각 Python, Java 문제 영선이는 숫자가 쓰여 있는 직사각형 종이를 가지고 있다. 종이는 1×1 크기의 정사각형 칸으로 나누어져 있고, 숫자는 각 칸에 하나씩 쓰여 있다. 행은 위에서부터 아래까지 번호가 매겨져 있고, 열은 왼쪽부터 오른쪽까지 번호가 매겨져 있다. 영선이는 직사각형을 겹치지 않는 조각으로 자르려고 한다. 각 조각은 크기가 세로나 가로 크기가 1인 직사각형 모양이다. 길이가 N인 조각은 N자리 수... 비트마스킹백준브루트 포스백준 (BOJ) 치킨배달_15686번 문제 자체가 어려운 것은 아니었지만 자잘한 실수가 많아 기록하게 되었다. 순열 조합 및 BFS로 접근하게 되었다. 순열 조합 : 폐업시킬 치킨집의 경우의 수 BFS : 각 집에서 치킨집까지의 최단 거리를 구할 때 코드 정말 말 그대로 폐업할 치킨집을 0으로 바꿔놓은 후 각 집(1)에 대해서 모두 BFS로 탐색하는 방식으로 풀었다. 하지만 이 과정에서 몇몇 실수가 있었다. 문제 풀면서 저질렀던... BFS브루트 포스baekjoon구현BFS 백준 2851 슈퍼 마리오 슈퍼 마리오 앞에 10개의 버섯이 일렬로 놓여져 있다. 이 버섯을 먹으면 점수를 받는다. 슈퍼 마리오는 버섯을 처음부터 나온 순서대로 집으려고 한다. 하지만, 모든 버섯을 집을 필요는 없고 중간에 중단할 수 있다. 중간에 버섯을 먹는 것을 중단했다면, 그 이후에 나온 버섯은 모두 먹을 수 없다. 따라서 첫 버섯을 먹지 않았다면, 그 이후 버섯도 모두 먹을 수 없다. 마리오는 받은 점수의 합을... 알고리즘백준구현브루트 포스pythonpython 백준 1182, 부분수열의 합 - Backtracking, Brute Force 백트래킹을 이용한 브루트 포스로 모든 조합에 대해 확인 입력 수열의 원소 [0] ~ [n-1] 까지 차례로 확인 각 원소에 대해 2가지 경우 => 선택 O / 선택 X 재귀 종료 조건: 입력 수열의 마지막 원소까지 확인한 경우 예외 처리) 구성한 부분수열 중, 공집합은 제외 => 입력 수열의 원소에서 1개도 선택하지 않은 경우는 제외 int[]: 입력 수열 boolean[]: 부분 수열 선택... 백준 1182 부분수열의 합알고리즘완전 탐색코딩 테스트백트래킹brute forceBacktracking브루트 포스Backtracking
[SWExpertAcademy] 1767. 프로세서 연결하기(자바) 가장자리에 있는 코어는 방문처리를 하고 시작한다. 가장자리가 아닌 코어들을 방문하며 4방향으로 전선을 설치해가며 모든 경우를 다 체크한다. 2의 과정 중 만약 현재 선택한 코어와 앞으로 방문할 코어의 수의 합보다 현재 정답 후보의 코어수가 더 크면 더 볼 필요가 없으므로 이 경우는 더 이상 체크하지 않는다.... 1767브루트 포스프로세서 연결하기자바SWEAJava알고리즘DFS1767 [백준] 1062번 가르침 문자열 리스트가 주어짐 antatica를 무조건 포함 소문자 알파벳 중에서 k개를 선택해서 가르침 단어를 온전히 읽을 수 있는 개수의 최대값 출력 antic를 미리 선택 나머지 중에서 k-5개 선택 선택한 알파벳으로 읽을 수 있는 단어 카운트 최댓값 출력 처음에 복잡도 계산을 잘못해서 시간초과가 날 줄 알았다 문제 유형에 비트마스킹이 있어서 그쪽으로 생각해봤다 근데 antatica를 빼고 다... 브루트 포스브루트 포스 백준 4920 테트리스 게임 문제 출처 : 테트리스는 아래와 같은 5가지 조각으로 이루어져 있다. N*N 정수 표가 주어졌을때 해당 조각을 이용해 얻을 수 있는 정수 합중 가장 큰 것을 출력하는 문제이다. 첫번째 조각은 90도로 회전했을때 나올 수 있는 가지수가 2개이고, 두번째 조각도 2개, 세번째 네번째는 4개 다섯번째는 1개로 총 13개이다. 해당조각이 N*N 정수표에 들어 갈 수 있는지 완전탐색으로 확인하는 방법... 구현브루트 포스구현 백준 15649 / N과 M(1) 설명 코드 코드설명 참고 : 출처 :... 백준브루트 포스백준 [백준] 14500번 - 테트로미노 Python 문제 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변끼리 연결되어 있어야 한다. 즉, 꼭짓점과 꼭짓점만 맞닿아 있으면 안 된다. 정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다. 아름이는 크기가 N×M인 종이 위... 알고리즘백준브루트 포스백준 백준 1233 주사위 총 3개의 주사위가 있다. 그리고 이 주사위는 각각 S1(2 ≤ S1 ≤ 20), S2(2 ≤ S2 ≤ 20), S3(2 ≤ S3 ≤ 40)개의 면이 있다. (실제로는 주사위가 6개의 면이 있는 것이 정상이지만 특별한 주사위라 생각하자.) 문제는 세 개의 주사위를 동시에 던졌을 때 가장 높은 빈도로 나오는 세 주사위의 합을 구하는 것이다. 예를 들어, S1 = 3, S2 = 2, S3 = 3... 알고리즘백준구현브루트 포스pythonpython 백준 2961, 도영이가 만든 맛있는 음식 - Brute Force, Backtracking 백트래킹 구현에 약간의 차이 브루트 포스 + 백트래킹: 백트래킹으로 조합(부분 집합)을 구성하고, 구성한 모든 경우를 확인 n 개의 재료들 중에서 1 ~ n 개 조합 (중복 X, 순서 X) 선택 1개 조합 선택 후, 차이 계산 2개 조합 선택 후, 차이 계산 n 개 조합 선택 후, 차이 계산 각 조합들에 대해 맛 최소 차이 갱신해나감 조합(Combination): C(n, k) = n! x ... 알고리즘코딩 테스트백준 2961 도영이가 만든 맛있는 음식백트래킹brute forceBacktracking브루트 포스Backtracking [백준] 14391번 - 종이 조각 Python, Java 문제 영선이는 숫자가 쓰여 있는 직사각형 종이를 가지고 있다. 종이는 1×1 크기의 정사각형 칸으로 나누어져 있고, 숫자는 각 칸에 하나씩 쓰여 있다. 행은 위에서부터 아래까지 번호가 매겨져 있고, 열은 왼쪽부터 오른쪽까지 번호가 매겨져 있다. 영선이는 직사각형을 겹치지 않는 조각으로 자르려고 한다. 각 조각은 크기가 세로나 가로 크기가 1인 직사각형 모양이다. 길이가 N인 조각은 N자리 수... 비트마스킹백준브루트 포스백준 (BOJ) 치킨배달_15686번 문제 자체가 어려운 것은 아니었지만 자잘한 실수가 많아 기록하게 되었다. 순열 조합 및 BFS로 접근하게 되었다. 순열 조합 : 폐업시킬 치킨집의 경우의 수 BFS : 각 집에서 치킨집까지의 최단 거리를 구할 때 코드 정말 말 그대로 폐업할 치킨집을 0으로 바꿔놓은 후 각 집(1)에 대해서 모두 BFS로 탐색하는 방식으로 풀었다. 하지만 이 과정에서 몇몇 실수가 있었다. 문제 풀면서 저질렀던... BFS브루트 포스baekjoon구현BFS 백준 2851 슈퍼 마리오 슈퍼 마리오 앞에 10개의 버섯이 일렬로 놓여져 있다. 이 버섯을 먹으면 점수를 받는다. 슈퍼 마리오는 버섯을 처음부터 나온 순서대로 집으려고 한다. 하지만, 모든 버섯을 집을 필요는 없고 중간에 중단할 수 있다. 중간에 버섯을 먹는 것을 중단했다면, 그 이후에 나온 버섯은 모두 먹을 수 없다. 따라서 첫 버섯을 먹지 않았다면, 그 이후 버섯도 모두 먹을 수 없다. 마리오는 받은 점수의 합을... 알고리즘백준구현브루트 포스pythonpython 백준 1182, 부분수열의 합 - Backtracking, Brute Force 백트래킹을 이용한 브루트 포스로 모든 조합에 대해 확인 입력 수열의 원소 [0] ~ [n-1] 까지 차례로 확인 각 원소에 대해 2가지 경우 => 선택 O / 선택 X 재귀 종료 조건: 입력 수열의 마지막 원소까지 확인한 경우 예외 처리) 구성한 부분수열 중, 공집합은 제외 => 입력 수열의 원소에서 1개도 선택하지 않은 경우는 제외 int[]: 입력 수열 boolean[]: 부분 수열 선택... 백준 1182 부분수열의 합알고리즘완전 탐색코딩 테스트백트래킹brute forceBacktracking브루트 포스Backtracking